//
// Created by ASUS on 2025/3/26/星期三.
//
#include <iostream>

long long H(long long n) {
	long long res = 0;  // 储存结果
	long long l = 1, r;       // 块左端点与右端点
	while (l <= n) {
		r = n / (n / l);  // 计算当前块的右端点
		// 累加这一块的贡献到结果中。乘上 1LL 防止溢出
		res += 1LL * (r - l + 1) * (n / l);
		l = r + 1;  // 左端点移到下一块
	}
	return res;
}

int main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	int t, n;
	std::cin >> t;
	while (t--) {
		std::cin >> n;
		std::cout << H(n) << '\n';
	}
	return 0;
}